/** by Just041 **/
*{
  margin: 0;
  padding: 0;
  list-style: none;
  transition: .5s;
}
html,body{
  background-color: #f5f5f5;
  color: #fff;
  font-size: 14px;
}
.app{
  width: 100%;
  height: 100vh;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.dot {
	width: 48px;
	height: 48px;
	display: block;
	position: relative;
	border-radius: 50%;
	background-color: blue;
	z-index: 1;
}
.dot::after {
	width: 100%;
	height: 100%;
	content: "";
	border-radius: 50%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -2;
	background-color: blue;
	animation: dot-play 4s linear 400ms infinite;
}
.dot::before {
	width: 100%;
	height: 100%;
	content: "";
	border-radius: 50%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	background-color: blue;
	animation: dot-play 4s linear 200ms infinite;
	animation-delay: 2s;
}
@keyframes dot-play{
  from{
    transform: scale(1);
		opacity: .2;
  }
  to{
    transform: scale(4);
		opacity: 0;
  }
}